Method and system for scheduling a customer service callback

ABSTRACT

A method and system for scheduling a callback time for customer service. The system calculates estimated handling resources for a customer interaction system ( 14 ) and forecasts a customer service transaction workload for the estimated handling resources of the customer interaction system ( 14 ). The system then determines the scheduled callback time based upon the estimated handling resources and the forecasted customer service transaction workload.

FIELD OF THE INVENTION

The present invention relates generally to the field of customer servicecallbacks and, in one exemplary embodiment, to offering a callback timebased upon estimated handling resources and forecasted customer servicetransaction workloads.

BACKGROUND OF THE INVENTION

A number of businesses offer their customers customer support via thetelephone. Often, the customer service agents are busy so the businessplaces the customer's telephone on hold and places the customer'srequest for service in a queue from where such requests are retrieved ascustomer service agents become available. Once retrieved, the customer'sphone is taken off hold and the customer is able to talk to an agent. Insome instances, the customer is even informed of how long she can expectto wait on hold. Oftentimes this wait time is based on past datacorresponding to average wait times associated with the customer'sposition in the queue. In other instances, the customer is informed ofthe estimated wait, the request for service is placed in a queue, butthe customer is offered a callback rather than being placed on hold. Ifthe customer accepts the offer to be called back, both the system andthe customer hang up but the system continues to keep track of thecustomer's position in the queue. When the customer's request eventuallycomes to the front of the queue, the system initiates a phone call backto the customer. A problem with this scheme is the estimated wait istightly coupled to the condition of the queue at the time of the initialcall. Further, callback attempts are unlikely to occur at a time dose tothe time implied by the estimated wait. Due to variations in resources,staffing, and transaction types, it is typically the case that, when thecustomer's service request actually arrives at the front of the queue,the actual wait time has substantially deviated from the estimate givento the customer. Lastly, the customer is only given the choice ofaccepting or rejecting the callback offer. The customer has no controlover the schedule of when a callback will be attempted

SUMMARY OF THE INVENTION

According to one aspect of the present invention, there is a providedmethod of scheduling a callback time for customer service. The methodincludes calculating estimated handling resources for a customerinteraction system, forecasting a customer service transaction workloadfor the estimated handling resources of the customer interaction system,and determining the scheduled callback time based upon the estimatedhandling resources and the forecasted customer service transactionworkload.

Other features of the present invention will be apparent from theaccompanying drawings and from the detailed description that follows.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a system to offer and schedule acallback time for customer service within a customer interaction system,according to an exemplary embodiment of the present invention;

FIG. 2 is a block diagram illustrating software and hardware componentsof the customer interaction system and the customer machine, accordingto an exemplary embodiment of the present invention;

FIG. 3 is a block diagram illustrating an exemplary embodiment of atracking module and a forecasting module operating on the workforcemanagement server of the enterprise contact machine;

FIG. 4 is a block diagram illustrating an exemplary embodiment of ascheduling module operating on the enterprise contact server of theenterprise contact machine;

FIG. 5 is a database diagram illustrating an exemplary databasemaintained by a database engine server that supports the customerinteraction system;

FIG. 6 is a database diagram illustrating selected fields from the eventschedule table, caller information table, resource forecast table, andcall/resource tracking table, according to an exemplary embodiment ofthe present invention;

FIG. 7 is a flowchart illustrating a method, according to an exemplaryembodiment of the present invention, wherein a customer interactionsystem offers a customer on a customer machine an option to schedule acallback for customer service from the customer interaction system; and

FIG. 8 is a flowchart illustrating a method, according to an exemplaryembodiment of the present invention, wherein the customer interactionsystem initiates the callback at or near the arrival of the scheduledcallback time.

FIG. 9 is a flowchart illustrating a method, according to an exemplaryembodiment of the present invention, wherein the scheduling module ofthe enterprise contact server triggers the callback module to initiatethe callback at the approximate scheduled callback time.

FIG. 10 illustrates a diagrammatic representation of a machine in theexemplary form of a computer system wherein a set of instructions can beexecuted to cause the machine to perform any one or more of themethodologies discussed herein.

DETAILED DESCRIPTION

A method and system for scheduling a callback time for customer serviceare described. In the following description, for purposes ofexplanation, numerous specific details are set forth in order to providea thorough understanding of the present invention. It will be evident,however, to one skilled in the art that the present invention may bepracticed without these specific details.

In general, embodiments described below feature a customer interactionsystem that can offer and schedule a callback time based uponcalculating estimated handling resources for a customer interactionsystem and forecasting a customer service transaction workload for theestimated handling resources of the customer interaction system. Thecustomer interaction system then determines the scheduled callback timebased upon the estimated handling resources and the forecasted customerservice transaction workload.

FIG. 1 is a block diagram illustrating a system 10 to offer and schedulea callback time for customer service, according to an exemplaryembodiment of the present invention. The system 10 includes a customermachine 12 and a customer interaction system 14 that communicate viacommunications network 16. The communications network 16 may be embodiedas the Internet, a LAN (local area network), a WAN (wide area network),PSTN (public switch telephone network), frame relay, ATM (asynchronoustransfer mode), satellite communications, Wireless communications,combinations thereof, or any other network equipment or protocol thatenables electronic communication between the above described networkentities. The customer machine 12 enables the customer to accesscustomer support services that are provided by the customer interactionsystem 14.

The customer interaction system 14 includes an enterprise contactmachine 18, at least one media switch 20, and a resource group 22. Thecustomer interaction system 14 may, for example, provide customerservice support for customers in a given marketplace. For example, acustomer may purchase a digital camera and experience technicaldifficulties that require customer support. The customer then may chooseto contact customer support through the customer interaction system 14via the communications network 16. A customer communication is receivedat a media switch 20 and processed by the enterprise contact machine 18.In one embodiment, the customer waits in a queue for a connection to theresource group 22. In another embodiment, the customer chooses to accepta callback time for a connection to resource group 22 offered by thecustomer interaction system 14.

FIG. 2 is a block diagram illustrating software and hardware componentsof the customer interaction system 14 and the customer machine 12,according to an exemplary embodiment of the present invention.

In addition to other software and hardware components that are notillustrated, the customer machine 12 includes a customer communicationsystem 24. In one embodiment, the customer machine 12 may be acommunication device such as, but not limited to, a computer system, alandline telephone (PSTN), a satellite phone, a fax machine, or any of avariety of wired or wireless communication devices. The customercommunication system 24 enables a user to access the customerinteraction system 14 by, merely for example, an instant messaging oronline chat interface, such as MSN Messenger developed by Microsoft™corporation of Redmond, Wash. In yet another embodiment, the customercommunication system 24 enables a user to display web pages that areloaded from server computers. The client communication system 24 may beembodied as a browser such as, the Microsoft Internet explorer browserdeveloped by Microsoft™ Corporation or Navigator™ browser developed byNetscape of Mountain View, Calif. The customer communication system 24embodied as a browser or instant messenger executes under an operatingsystem such as, Microsoft™ Windows developed by Microsoft™ Corporationor Mac OS X developed by Apple Computers of Cupertino, Calif.

The enterprise contact machine 18 includes one or more of a number ofservers, namely communication and processing servers in exemplary formof a web server 28 that can engage in instant messaging and deliver webpages (e.g., mark up language documents), a workforce management (WFM)server 32 that may track current handling resources, calculate estimatedhandling resources for future service, and forecast customer servicetransaction workloads for those handling resources, an enterprisecontact server 34 that can schedule and initiate a callback, and adatabase engine server 36, which maintains and facilitates access to adatabase 38. In one embodiment, the web server 28 can be connecteddirectly to the communications network 16, while in another embodiment,the servers are connected indirectly to the communications network 16via media switches 40-1 through 40-n (e.g., automatic calldistributors).

The customer interaction system 14 includes at least one media switch40-1 communicatively coupled to the communications network 16, theenterprise contact servers 34, the workforce management servers 32, andthe resource group 42. Media switches 40-1 through 40-n can support anyone or all of the following protocols: PSTN voice, Voice over InternetProtocol (VoIP), or instant messaging (IM) protocol. Resource group 42includes at least one resource 44-1. Resources 44-1 through 44-n caninclude, but are not limited to, any one or a combination of a humanresource, a speech recognition system, or an interactive voice response(IVR) system. Additionally, the media switches 40-1 though 40-n can belocated within various geographic regions such that there may be a localor non-local toll charge with respect to the resource group 42 or thecustomer machine 12. For example, media switch 40-1 may be local to theresource group 42 but not local to the customer machine 12, while switch40 n may be local to the customer machine 12 but not local to theresource group 42.

FIG. 3 is a block diagram illustrating an exemplary embodiment of atracking module 46 and a forecasting module 48 operating on theworkforce management server 32 of the enterprise contact machine 18. Thetracking module 46 executes under kernel operating software to scan thedatabase 38 coupled to the database engine server 36 for resourceinformation.

The forecasting module 48 executes under kernel operating software toprovide forecast information such as, forecasted number of contacts,forecasted average handle time, and forecasted abandoned calls.Additionally, the forecasting module 48 may obtain data from any one orall of the media switches 40-1 through 40-n including but not limited tothe number of calls in a queue, the average handle time, the averagetime to advance a call, the number of resources logged on, and thenumber of resources available.

FIG. 4 is a block diagram illustrating an exemplary embodiment of ascheduling module 50, operating on the enterprise contact server 34 ofthe enterprise contact machine 18. The scheduling module 50 executesunder kernel operating software to schedule and store a callback timefor customer service. The callback module 52 executes under kerneloperating software to initiate a callback through a media switch whenthe scheduled callback time arrives.

In another embodiment, media switch and/or resource group informationcan be uploaded to the database 38 through any one of, the enterprisecontact server 34, the workforce management server 32, or the web server28 via the database engine server 36. Once uploaded, the tracking module46, the forecasting module 48, the scheduling module 50, or the callbackmodule 52 may access the data from database 38.

FIG. 5 is a database diagram illustrating tables within the exemplarydatabase 38, which is maintained by and accessed via the database engineserver 36. The database 38 may, in one exemplary embodiment, beimplemented as a relational database, and includes a number of tableshaving entries, or records, that are linked by indices and keys. In analternative embodiment, the database 38 may be implemented as acollection of objects in an object-oriented database.

The database 38 includes a historical database table 53 that may belinked to an event schedule table 54, resource forecast table 58 andcall/resource tracking table 60. The event schedule table 54 may also belinked to a caller information table 56 and the resource forecast table58. The resource forecast table 58 could also be linked to the callresource tracking table 60. The database 38, via database engine server36, may be read from or written to by any other servers in theenterprise contact machine 18.

FIG. 6 provides a diagrammatic representation of database 38, includingselected fields from the historical data table 53, the event scheduletable 54, the caller information table 56, the resource forecast table58, and the call/resource tracking table 60, according to one exemplaryembodiment of the present invention.

The historical data table 53 includes records that contain historicalwait times 65, historical transaction times 66, and historical resourceschedules 67. The event schedule table 54 includes records that containa callback time 70, a selected media switch 71, and an event status data72. In one embodiment, the event status data 72 indicates whether ascheduled callback attempt was successful or not.

The caller information table 56 includes caller records critical toscheduling and initiating a callback. These records include caller data77, a caller address 78, and a communication protocol 79. The callerdata 77 may include information such as, for example, name, user name,and location. The caller address record 78 may include, for example, atelephone number, a user name for an instant messaging service, and/oran email address. The communication protocol 79 indicates what type ofcommunication protocol will be used for the callback. Such protocols caninclude, for example, the Voice over IP (VoIP) protocol, an instantmessaging protocol, fax, or PSTN.

The resource forecast table 58 includes records that indicate forecastsof a customer service transaction workload for actual and estimatedhandling resources associated with the customer interaction system 14.These records include a forecast time interval 84, forecasted contacts85, a forecasted time to advance 86, forecasted calls abandoned 82,resources scheduled 87, resources required 88, and an open for eventrecord 89.

The forecast time interval 84, according to one embodiment of thepresent invention, is a predetermined future window of time used by theworkforce management server 32 to calculate the estimated handlingresources and to forecast the customer service transaction workload forthe estimated handling resources of the customer interaction system 14.A forecasted contacts record 85 is the projected number of customercommunications for the given forecast time interval. The records for thenumber of resources scheduled 87 and the number of resources required 88are also dependent upon the forecast time interval 84. The open forevent record 89 indicates whether or not an event, such as a callback,can be scheduled within the forecast time interval.

The call/resource tracking table 60 includes records that include calland resource data regarding the customer interaction system 14. Theserecords include calls in queue 94, scheduled callbacks 95, averagehandle time per call 96, average time to advance 97, resources available98, and the estimated wait time 99.

FIG. 7 is a flowchart illustrating a method 100, according to anexemplary embodiment of the present invention, whereby a customerinteraction system 14, in response to an incoming customer servicerequest, offers a customer, on a customer machine 12, an option toschedule a callback for customer service from the customer interactionsystem 14. In varying embodiments, the customer service request comesfrom a telephone or wireless device, a web page service request form, oran instant messaging application whereby a callback schedule agent canrespond with callback time options. In another embodiment, the customerinitiates a request for a callback from the customer interaction system14.

At box 102, the customer initiates a contact with the customerinteraction system 14. The customer interaction system 14 receives thecustomer call at a switch configured to receive the customer's chosencommunications protocol.

The enterprise contact server 34, at box 106, is then queried for theexpected wait time that has been calculated and stored in the database38. The enterprise contact server 34 uses records from the historicaldata table 53, event schedule table 54 and resource tracking table 60 tocalculate the expected wait time, as discussed with reference to FIG. 8.An estimate of how long a customer will have to wait before beingconnected to an agent is used to decide whether or not to offer thecustomer the option to be called back by the system at some future time.At box 108, if the estimated wait time is less than a configurablethreshold time, then the callback option will not be offered and thedecision will be stored at box 110. The configurable threshold time mayvary from time interval to time interval and may be configured by anenterprise contact system administrator.

According to one exemplary embodiment of the present invention, the waittime may be estimated by the enterprise contact server 32, whichcomputes the average time it has taken calls to advance one place in thequeue during the recent past. In other words, the server 32 may computean average of the historical transaction times for a predeterminedforecast time interval. When a new call arrives, an estimate of the waitcan be obtained by multiplying this average time to advance by thenumber of calls currently in the queue to yield a forecasted time toadvance. This wait time provides an estimate of the expected wait underthe assumption that the handling resources are constant over the recentpast and the near future. An improved estimate may be obtained by takinginto account the variability of the available handling resources. In oneembodiment, the workforce management server 32 accesses the historicaltransaction times 66 and the historical handling resources 67 from thedatabase 38 to perform a regression calculation of the average time toadvance during the recent past against the handling resources availableat the time the previous advance occurred. The result is data, such as aforecasted average time to advance 86 as a function of currentlyscheduled handing resources 87, that can be used to provide an estimatedwait time 99. When a new call arrives, an estimate of the wait for aqueue of size n can be computed as follows. Note, the number calls inqueue can be found in the database 38. Let t₀ be the current time. Leta₀ be average time to advance based on an estimate of the availableresources at time t_(0.) Let t₁=t₀+a₀. Let a₁ be the average time toadvance based on an estimate of the available resources at time t₁. Lett₂=t₁+a₁. In general, let a_(j-1) be the average time to advance basedon an estimate of the available resources at time t_(j-1). Lett_(j)=t_(j-i)+a_(j-1). Then t_(n+1)−t₀ estimates the wait time for aqueue of size n. This wait time is an estimate of the expected wait forthe case when handling resources vary in time.

In another embodiment, the estimated wait time may be a confidence waittime. To compute the confidence wait time, a probability distributionp(t;n) is determined for the wait time, given a queue of size n. Aconfidence level, c, is set (where 0<c<1). The c×100% confidence waittime is then defined as the time, T, such that Prob{t<T}=c for thedistribution, p(t;n). A simple way to approximate the probabilitydistribution, p(t,n), is to assume that the time for each advance in thequeue is exponentially distributed with a mean that is the average timeto advance over the recent past. Then p(t;n) can be expressed as ascaled gamma distribution with parameter n+1. That is:p(t;n)=t ^(n) e ^(−t/a) /a ^(n+1) Γ(n+1)

where “a” is the average time to advance.

The confidence wait time conveniently reflects the increasinguncertainty and the change in the shape of the distribution of the waittime as the as size of the queue increases. An expected wait time doesnot. For example, if the callback system is configured to offer acallback when the 95% confidence wait time is greater than 15 minutes(the configured threshold value), that means that a customer will beoffered a callback when the probability they will have to wait more than15 minutes is greater then 5% and that statement is true no matter whatthe size of the queue. On the other hand, if the customer is offered acallback when an expected wait time is greater than 15 minutes, theprobability that the customer would have to wait more than 15 minutesdepends on the size of the queue.

If the estimated wait time is greater than a configurable thresholdtime, the customer interaction system 14, at box 112, calculatescallback time options, as illustrated in FIG. 8, and offers theseoptions to the customer. At box 114, if the customer declines to acceptany of the callback options, the customer interaction system 14 promptsthe customer to suggest an alternate callback time. For example, if thecustomer contact is via a telephone, the customer may select analternate callback time via an interactive voice response (IVR) system.If the customer declines to suggest or select an alternate callbacktime, at box 116, the customer interaction system 14 stores the decisionat box 118 and ends the session. If the customer inputs an alternatecallback time, the customer interaction system 14, based upon thealternate callback time, calculates callback time options based uponestimated handling resources, transaction forecasts, and customerinteraction system objectives and generates a set of new callback timesto offer, at box 112. However, if at box 114, the callback option isaccepted, the customer interaction system 14, at box 120, collects thecustomer's callback contact information, schedules a callback, andstores the callback information in the database 38. In variousembodiments, callback information can be collected according to thecommunications protocol used. For example, an IM chat session could usean agent to collect customer contact information over an IM dialog box,a telephone contact could use an ANI (automatic number identificationservice) coupled to the enterprise contact server 34, or for a webcontact, by an HTML POST to web service that can communicate with theenterprise contact server 34 via the web server 28.

FIG. 8 is a flowchart illustrating a method 130, according to anexemplary embodiment of the present invention, whereby the trackingmodule 46 and forecasting module 48 of workforce management server 32estimate resources and transactions for future time intervals. Theenterprise contact server 34 uses these estimates to calculate thecallback time options to offer the customer. At box 132, the workforcemanagement server 32, responsive to the enterprise contact server 34determining that a callback should be offered, calculates estimatedhandling resources for the customer interaction system 14. In oneembodiment, the customer interaction system 14 has previously scheduledresources, as indicated in the resource forecast table 58, so that, atany future time, some subset of resources is available to handlecallbacks exclusively. In this case, forecasting module can provide, forfuture time intervals such as the time intervals at or near the callbacktime, the mean number of resources so scheduled or staffed as anestimate of the handling resources for that given time interval. In oneembodiment, the time interval is configurable and the mean number ofresources scheduled is calculated by the forecasting module 48 from thehistorical resource schedule data from history table 61. Subject to thisscheduling constraint, improved estimates can be obtained when thetracking module 46 tracks the actual mean number of resources that havebeen available to handle callbacks over a number of time intervals inthe recent past. The deviations calculated by the tracking module 48between the actual (e.g., observed) mean number of available resourcesand the scheduled mean number of available resources over time intervalsin the recent past then can be used to correct the estimate based onscheduling alone. The correction can be determined by any number ofregression techniques applied to the past deviations. Among these, themost basic is a simple linear regression of actual mean againstscheduled mean available resources. In this case, the “line ofregression” provides an estimate of the mean number of availableresources during some future time interval, which estimate is a(non-homogeneous) linear function of the mean number of scheduledresources for that period.

Alternatively, a weighted linear regression in which the weightsdecrease with the age of the deviations (e.g., exponentially with theage) can be used to produce the correction. In this case, the correctionprovided by the line of regression reflects the deviations of the recentpast more strongly than those of the less recent past. Additionally, butstill subject to the scheduling constraint of exclusive callbackresources, corrections can also be informed by tracking deviations intothe remote past, an a priori stochastic model, or both. In these cases,a parameterized conditional probability distribution expressing actual(e.g., observed) mean number given scheduled mean number of availableresources is assumed. The historical data such as, historical resourceschedules and historical transaction times, and/or a prioriconsiderations are used to enforce constraints upon the parameters ofthis distribution. The remaining degrees of freedom among the parametersare then free to vary in time. Therefore, recent past deviations can beused to constrain those remaining degrees of freedom and therebyimplicitly estimate all the distribution's parameter values in effectduring any time interval. The estimated mean number of availableresources available during some future time interval can be obtained asthe maximum likelihood estimate of mean number of available resourcesfor the conditional distribution with the estimated parameters, giventhe scheduled number of available resources.

In another embodiment, the resources that are, exclusively handlingcallbacks are grouped subject to constraints that different sets ofresource groups are available for different types of callbacks. In thiscase, any estimate of future handling resources (e.g., a mean number ofavailable resources) for a type of callback may take into account thatany available resource may be shared among different types of callback.In one embodiment, the scheduling module 50 apportions equal fractionsof a resource to handle each type of callback for which the resource isavailable. However, since different types of callbacks will arise atdifferent rates and consume different amount of an resource's availabletime, it is appropriate to correct each fraction to be the ratio ofcallback work of the given type to the sum of all the callback work forall the types of callback the resource may handle during any time periodwhen the resource is available. In this way, the estimate of futurehandling resources for a particular type of callback becomes dependentupon a forecast of callback incidence and type. In other embodiments,the estimate can be corrected and refined by use of regression againstthe recent past deviations, obtained from the tracking module 46,subject to constraints imposed by historical resource data or a prioriconsiderations. In yet another embodiment, there is no requirement thatresources handle callbacks exclusively, but only that a predeterminedpercentage of a resource's labor is apportioned exclusively for callbackwork. These percentages are used to deflate the estimates for averagenumber of resources available as compared to what the estimates would bewere resources working on callback exclusively. This can be done for thecase of resource groups and call types, and such estimates also can becorrected and refined by regression. In an exemplary embodiment, asystem administrator enters this percentage allocation into the customerinteraction system 14.

At box 136, the workforce management server 32 forecasts transactionsthat will be associated with the estimated handling resources. Theforecast module 48 configures, for each time interval, default values,stored in the resource forecast table 58, for describing the forecastedcontacts and the forecasted handling time for each resource handlingeach contact. In another embodiment, these forecast values are theresult of a regression and/or trend analysis of historical data and maybe informed by a business model of future transactions that anticipateschanges in the incidence or handle time not reflected in the historicaldata. The values offered by the forecast module 48 are typicallyinterpreted as estimates of the (time-varying) parameters of(exponential) probability distributions that capture the stochasticnature of the forecast transactions. In this way, both expected valuesand confidence limits for forecasted contacts and forecasted handlingtime can be obtained. The estimates of the parameters can be correctedby the tracking module 46 tracking the actual values of contacts andhandling times over the recent past; these actual values may be used tocompute maximum likelihood estimates of the distributions' parametersfor this recent past. A regression of the observed parameter estimatesagainst the forecast parameter estimates over time intervals of therecent past can be used to correct the forecast for a future timeinterval. This forecast, calculated by the forecast module 48, can beused to determine when there is a positive net staffing, whereby thenumber of resources staffed exceeds the required number of resourcesstaffed for a given predefined time interval.

In another embodiment, the contacts are typed, and for each type ofcontact the forecast module 48 provides a forecast of the incidence ofcontacts and the handle time for any time interval. Now the values foreach type of contact are subject to the same sort of refinement andcorrection as referenced above in the previous embodiment. Theserefinements and corrections may be applied either independently for eachcontact type or simultaneously for all contact types.

At box 138, the enterprise contact server 34 determines a callback timeto offer a customer based upon the estimated handling resources and theforecast transaction workload supplied by the forecast module 48. Theenterprise contact server 34 must determine suitable times for acallback from some time interval, for example, [t1, t2], where t1 isgreater than the current time plus an estimated wait time. In oneembodiment, the interval, [t1, t2], is provided by the customer, and thecallback system seeks a time based on the availability of resources thatare working on callbacks. The callback system knows when callbacks havebeen already scheduled, so it can estimate the handling resourcesalready committed at any time in [t1, t2]. The workforce managementserver 32 can estimate the available handling resources. The differenceis the handling resources that are free to be scheduled for newcallbacks.

In general, this difference varies over [t1, t2]. Any time, in [t1, t2],when this difference is greater than the resources required to handlethe current call is a candidate for the callback time. For exemplarypurposes, these callback times are called candidate times. For any time,in [t1, t2], let the resource excess be the available handling resourcesminus the handling resources needed for previously scheduled callbacksminus the resources required to handle the current call. In these terms,a time in [t1, t2] is a candidate time whenever the resource excess ispositive or, in other words, there is positive net staffing. If thereare such candidate times, the system may select a small number of them,suggest them to the customer, and ask the customer to choose one. (Themaximum number of callback times suggested may be determined by aconfigurable bound.) Alternatively, a callback time may be selectedbased on a time within [t1, t2] where the net staffing is at a maximumfor the given period. Typically, there will be many times in [t1, t2]when it is appropriate to schedule a callback. For this reason, it ispossible to choose which times are suggested to the customer bydifferent criteria that achieve different system objectives, such asnext available time, best staffing time, or least cost.

For a system objective of next available time, according to an exemplaryembodiment, a configured time delay, d, is employed, as well as theconfigured bound, n, on the number of suggested times. If there is nocandidate time in [t1, t2], the customer is prompted for a new timeinterval or the offer to callback withdrawn. Otherwise, the earliestcandidate time, T1, in [t1, t2] is suggested. A second candidate time,T2, is suggested where T2 is the earliest candidate time such thatT1+d<T2<=t2. A third candidate time, T3, is suggested where T3 is theearliest candidate time such that T2+d<T3<=t2, and so on, until thenumber of suggested times equals the configured bound, n, or there areno such candidate times.

For a system objective of best staffing time, according to anotherembodiment, a configured time delay, d, is employed, as well as theconfigured bound, n, on the number of suggested times. Suggest a time in[t1, t2] when the excess is a maximum. Suggest k other times such thatthe pair-wise difference between the times is at least d, each time isin [t1, t2], k is the largest integer less than or equal to n-1 forwhich there are such times, and such that the least excess among the ktimes is greatest.

For an exemplary embodiment of a system objective of least cost, aconfigured time delay, d, is employed, a configured bound, n, on thenumber of suggested times is given, and a cost associated with making acallback from a particular media switch to the callback addresss (e.g.,phone number) is known. In this case, select an optimal media switch,specifically a media switch with least cost. Either the next availableor best staffing suggested times are found then for the handlingresources associated with that switch.

At box 139, the enterprise contact server 34 and media switches 40-1through 40-n offers the customer the callback option. For example, ifthe customer contact is via the web, a dialog window may be configuredto display the callback times and prompt the customer to select one orby interactive voice response if contact is by telephone. In anotherembodiment, the customer contact is via an instant messaging (IM)application and the callback time or times are offered in a dialog boxassociated with the IM application by a callback schedule agent.

FIG. 9 is a flowchart illustrating a method 140, according to anexemplary embodiment of the present invention, wherein the schedulingmodule 50 of the enterprise contact server 34 triggers the callbackmodule 52 to initiate the callback at the approximate scheduled callbacktime. At box 142, once the scheduled callback time arrives, the callbackmodule 52 retrieves, from the database 38, caller data 77, calleraddress 78 (e.g., phone number) and caller communication protocol 79(e.g., telephone, IM chat, etc.). The callback module 52 thendetermines, at box 144, an appropriate switch for callback based uponthe communication protocol and system objectives, as discussed withreference to FIG. 8.

At box 146, the media switch selected for callback is stored in theevent schedule table 54 and the customer information table 56 of thedatabase 38. At box 148, the media switch places the callback. In oneembodiment, the enterprise contact server 34 may reserve resources forthe callback prior placing the call on the media switch. If the customerfails to respond to the callback, at box 150, the scheduling module 50may be configured to reschedule a callback at box 152. For example, ifthere is no answer, the customer interaction system 14 may be configuredto automatically reschedule a callback at intervals for a fixed numberof times as configured by a callback system administrator. In anotherembodiment, the rescheduling occurs at a time when resources are alsopredicted to be available. At box 154, the decision to reschedule thecallback is stored in the database 38 under event status 72. If thecustomer interaction system 14 does reschedule a callback, at box 152,the process returns to waiting for the scheduled callback time to arriveat box 142. If the customer interaction system 14 is configured not toreschedule a callback, the session ends. However, if the customer doesrespond to the callback, at box 150, the callback module 52 verifies thecustomer by asking for an affirmative response to previously acquiredcaller data or assigned ID (identifier). The response may vary accordingto protocol used. For example, a telephone callback may use an IVRsystem to detect a voice response to a question regarding a name, or foran IM callback, the response will be typed into the IM interface. Onceverified, the callback module 52 places the customer into the customerservice queue at a callback priority ranking and connects the customerto a resource or a previously reserved resource when the top of thequeue is reached, at box 156. In an exemplary embodiment, the priorityranking may put the customer at the front of the queue or,conditionally, place the customer in queue for a reserved callbackresource. At box 158, the result of the callback is stored in thedatabase 38 under event status 72.

FIG. 10 illustrates a diagrammatic representation of a machine in theexemplary form of a computer system 200 wherein a set of instructionscan be executed to cause the machine to perform any one or more of themethodologies discussed herein. In alternative embodiments, the machineoperates as a standalone device or may be connected (e.g., networked) toother machines. In a networked deployment, the machine may operate inthe capacity of a server or a client machine in a server-client networkenvironment, or as a peer machine in a peer-to-peer (or distributed)network environment. The machine can be a personal computer (PC), atablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), acellular telephone, a web appliance, a network router, switch or bridge,or any machine capable of executing a set of instructions (sequential orotherwise) that specify actions to be taken by that machine. Further,while only a single machine is illustrated, the term “machine” shallalso be taken to include any collection of machines that individually orjointly execute a set (or multiple sets) of instructions to perform anyone or more of the methodologies discussed herein.

The exemplary computer system 200 includes a processor 202 (e.g., acentral processing unit (CPU) a graphics processing unit (GPU) or both),a main memory 204 and a static memory 206, which communicate with eachother via a bus 208. The computer system 200 may further include a videodisplay unit 210 (e.g., a liquid crystal display (LCD) or a cathode raytube (CRT)). The computer system 200 also includes an alphanumeric inputdevice 212 (e.g., a keyboard), a cursor control device 214 (e.g., amouse), a disk drive unit 216, a signal generation device 218 (e.g., aspeaker) and a network interface device 220.

The disk drive unit 216 includes a machine-readable medium 222 on whichis stored one or more sets of instructions (e.g., software 224)embodying any one or more of the methodologies or functions describedherein. The software 224 may also reside, completely or at leastpartially, within the main memory 204 and/or within the processor 202during execution thereof by the computer system 200, the main memory 204and the processor 202 also constituting machine-readable media.

The software 224 may further be transmitted or received over a network226 via the network interface device 220.

While the machine-readable medium 222 is shown in an exemplaryembodiment to be a single medium, the term “machine-readable medium”should be taken to include a single medium or multiple media (e.g., acentralized or distributed database, and/or associated caches andservers) that store the one or more sets of instructions. The term“machine-readable medium” shall also be taken to include any medium thatis capable of storing, encoding or carrying a set of instructions forexecution by the machine and that cause the machine to perform any oneor more of the methodologies of the present invention. The term“machine-readable medium” shall accordingly be taken to included, butnot be limited to, solid-state memories, optical and magnetic media, andcarrier wave signals.

Thus, a method and system to schedule a callback time for customerservice have been described. Although the present invention has beendescribed with reference to specific exemplary embodiments, it will beevident that various modifications and changes may be made to theseembodiments without departing from the broader spirit and scope of theinvention. Accordingly, the specifications and drawings are to beregarded in an illustrative rather than a restrictive sense.

1. A method of scheduling a callback time for customer service, themethod including: calculating estimated handling resources for acustomer interaction system; forecasting a customer service transactionworkload for the estimated handling resources of the customerinteraction system; and determining the scheduled callback time basedupon the estimated handling resources and the forecasted customerservice transaction workload.
 2. The method of claim 1, wherein thecalculating and the forecasting includes using a predetermined forecasttime interval for the estimated handling resources and the customerservice transaction workload.
 3. The method of claim 1, wherein thecalculating of the estimated handling resources includes projectingresource availability based on times resources are scheduled.
 4. Themethod of claim 1, wherein the calculating of the estimated handlingresources includes determining net staffing at the callback time.
 5. Themethod of claim 1, wherein the calculating of the estimated handlingresources includes an apportionment of handling resources tospecifically handle callbacks.
 6. The method of claim 1, wherein theforecasting of the customer service transaction workload for thehandling resources includes calculating periods of positive net staffingof resources.
 7. The method of claim 6, wherein positive net staffing isif a current number of resources staffed exceeds a required number ofresources staffed.
 8. The method of claim 1, wherein the forecasting ofthe customer service transaction workload for the handling resourcesincludes calculating periods of maximum net staffing of resources. 9.The method of claim 1, including setting a confidence level, wherein theconfidence level is a probability that a length of time a customer wouldwait in queue is less than a wait for the scheduled callback time. 10.The method of claim 9, wherein determining the scheduled callback timeincludes using the confidence level and a probability distribution forthe wait in the queue.
 11. The method of claim 10, wherein theprobability distribution for the wait in queue is based upon at leastone of an analysis of customer service transaction forecasts, estimatedhandling resources, and historical data regarding actual wait times. 12.The method of claim 9, wherein a customer provides the confidence level.13. The method of claim 1, further including: offering the callback timefor customer service to a customer; and receiving and storing a decisionby the customer to accept the offered callback time.
 14. The method ofclaim 13, including receiving an alternate callback time from thecustomer.
 15. The method of claim 14, including offering a new callbacktime based upon the received alternate callback time.
 16. The method ofclaim 13, including scheduling and storing a callback time for customerservice if the customer accepts the offered callback time.
 17. Themethod of claim 13, including collecting customer contact informationfor the callback.
 18. The method of claim 17, wherein the customercontact information includes a communications network address.
 19. Themethod of claim 18, wherein the communications network address is anidentifier associated with a telephone number obtained from an automaticnumber identification service.
 20. The method of claim 18, wherein thecommunications network address is an identifier associated with aninstant messaging service.
 21. The method of claim 17, wherein aftercollecting the customer contact information, the callback information isverified with the customer.
 22. The method of claim 1, includinginitiating a first callback on a media switch approximately at thescheduled time of the callback.
 23. The method of claim 22, wherein thefirst callback is placed on an optimal media switch.
 24. The method ofclaim 22, wherein the first callback is placed on the media switch thatminimizes cost.
 25. The method of claim 22, including reserving atapproximately the scheduled time of the first callback resources forhandling the first callback.
 26. The method of claim 25, includingverifying a customer's identity if the first callback is answered. 27.The method of claim 26, including connecting the customer to thereserved resources after verifying the customer's identity.
 28. Themethod of claim 27, wherein after the verifying the customer identity,placing the customer in a queue for customer service.
 29. The method ofclaim 28, wherein a customer in the queue has a priority ranking. 30.The method of claim 22, including scheduling a second callback if thecustomer does not respond to the first callback.
 31. The method of claim22, wherein the workload and available handling resources atapproximately the scheduled time of a callback influence, the initiationtime of the callback.
 32. The method of claim 31, wherein a confidencelevel and probability distributions of workload and available handlingresources at approximately the scheduled time of a callback, influencethe initiation time of the callback.
 33. The method of claim 1, furtherincluding: receiving a customer service request; and offering thecallback time if an estimated wait time associated with servicing thecustomer service request exceeds a configurable threshold value.
 34. Themethod of claim 33, including calculating the estimated wait time basedupon customer service factors including at least one of, the number ofcalls in a service request queue, the number of currently scheduledcallbacks or the projected resource availability.
 35. The method ofclaim 34, wherein calculating the estimated wait time includes using aconfidence wait time based upon a confidence level and a probabilitydistribution.
 36. The method of claim 35, wherein the probabilitydistribution for the wait time is based on historical wait times. 37.The method of claim 33, including receiving the customer service requeston a media switch through a communications network.
 38. The method ofclaim 37, wherein the communications network is a public switchedtelephone network.
 39. The method of claim 37, wherein the media switchis an automatic call distributor.
 40. The method of claim 37, whereinthe communications network is a data network.
 41. The method of claim37, wherein the media switch is a network server supporting instantmessaging.
 42. The method of claim 37, wherein the media switch is anetwork server supporting voice over Internet.
 43. A system forscheduling a callback time for customer service, the system including: atracking module to calculate estimated handling resources for a customerinteraction system; a forecasting module to forecast a customer servicetransaction workload for the estimated handling resources of thecustomer interaction system; and a callback module to determine thecallback time based upon the estimated handling resources and theforecasted customer service transaction workload.
 44. The system ofclaim 43, wherein the tracking module uses projected resourceavailability based on times resources are scheduled to calculate theestimated handling resources.
 45. The system of claim 43, wherein thetracking and forecasting module use a predetermined forecast timeinterval for the estimated handling resources and the customer servicetransaction workload.
 46. The system of claim 43, wherein the callbackmodule calculates net staffing in order to determine the callback time.47. The system of claim 43, wherein the tracking module includes anapportionment of handling resources to specifically handle callbacks.48. The system of claim 46, wherein positive net staffing is when acurrent number of resources staffed exceeds a required number resourcesstaffed.
 49. The system of claim 43, wherein the forecast module of thecustomer service transaction workload for the handling resourcesincludes calculating periods of maximum net staffing.
 50. The system ofclaim 43, wherein the callback module determines the callback timeincluding setting a confidence level.
 51. The system of claim 50,wherein the callback module sets a confidence level based upon aprobability that a length of time a customer would wait in queue is lessthan a wait for the scheduled callback time
 52. The system of claim 51,wherein the determining the scheduled callback time includes using theconfidence level and a calculated probability distribution for the waitin the queue.
 53. The system of claim 52, wherein the probabilitydistribution for the wait in queue is based upon at least one of ananalysis of customer service transaction forecasts, estimated handlingresources, and historical data regarding actual wait times.
 54. Thesystem of claim 50, wherein a customer provides the confidence level.55. The system of claim 43, wherein the callback module offers thecallback time for customer service to a customer and receives and storesa decision by the customer whether to accept the offered callback time.56. The system of claim 55, wherein the callback module receives analternate callback time from the customer.
 57. The system of claim 56,wherein the callback module offers a new callback time based upon thereceiving the alternate callback time.
 58. The system of claim 55,including a scheduling module to schedule and store a callback time forcustomer service if the customer accepts the offered callback time. 59.The system of claim 58, wherein the scheduling module collects customercontact information for the callback.
 60. The system of claim 59,wherein the customer contact information includes a communicationsnetwork address.
 61. The system of claim 58, wherein the schedulingmodule triggers the callback module to initiate a first callback on amedia switch at approximately the scheduled time of the callback. 62.The system of claim 60, wherein the communications network address is atelephone number obtained from an automatic number identificationservice.
 63. The system of claim 60, wherein the communications networkaddress is an identifier associated with an instant messaging service.64. The system of claim 61, wherein the callback module places thefirstcallback on an optimal media switch.
 65. The system of claim 61,wherein the callback module places the firstcallback on the media switchthat minimizes cost.
 66. The system of claim 61, wherein the schedulingmodule at approximately the scheduled time of the first callbackreserves resources for handling the first callback.
 67. The system ofclaim 66, wherein the callback module verifies the customer identity ifthe first callback is answered.
 68. The system of claim 67, wherein thecallback module connects the customer to the reserved resources afterverifying the customer's identity.
 69. The system of claim 67, whereinthe callback module after verifying customer identity places thecustomer in a queue for customer service.
 70. The system of claim 69,wherein the customer in the queue has a priority ranking.
 71. The systemof claim 61, wherein the scheduling module schedules a second callbackif the customer does not respond to the first callback.
 72. The systemof claim 71, wherein the callback module accepts input from the customerfor another callback time.
 73. The system of claim 72, wherein thecallback module offers a new callback time based upon the enteredcallback time, the estimated handling resources and the forecastedcustomer service transaction workload.
 74. The system of claim 43,wherein prior to scheduling the callback time, the callback modulereceives a customer service request and offers the callback time if ameasure of wait time associated with servicing the customer servicerequest exceeds a configurable threshold value.
 75. The system of claim74, wherein the callback module calculates the estimated wait time basedupon customer service factors including at least one of, the number ofcalls in a service request queue, the number of currently scheduledcallbacks or the projected resource availability.
 76. The system ofclaim 75, wherein the callback module calculates the estimated wait timeusing a confidence wait time based upon a confidence level and aprobability distribution.
 77. The system of claim 76, wherein thecalculation of the probability distribution for the confidence wait timeis based on historical wait times.
 78. The system of claim 74, whereinthe callback module receives the customer service request on a mediaswitch through a communications network.
 79. The system of claim 78,wherein the communications network is a public switched telephonenetwork.
 80. The system of claim 78, wherein the media switch is anautomatic call distributor.
 81. The system of claim 78, wherein thecommunications network is a data network.
 82. The system of claim 78,wherein the media switch is a network server supporting instantmessaging.
 83. The system of claim 78, wherein the media switch is anetwork server supporting voice over Internet.
 84. A machine readablemedium storing a set of instructions that, when executed by a machine,cause the machine to: calculate estimated handling resources for acustomer interaction system; forecast a customer service transactionworkload for the estimated handling resources of the customerinteraction system; and determine the callback time based upon theestimated handling resources and the forecasted customer servicetransaction workload.
 85. A system to schedule a callback time forcustomer service, the system including: a first means for calculatingestimated handling resources for a customer interaction system; a secondmeans for forecasting a customer service transaction workload for theestimated handling resources of the customer interaction system; and athird means for determining the callback time based upon the estimatedhandling resources and the forecasted customer service transactionworkload.